<?php
// 显示所有错误
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

echo "<div style='font-family: Arial, sans-serif; max-width: 800px; margin: 20px auto; padding: 20px; border: 1px solid #ddd; border-radius: 5px;'>";
echo "<h2>修复 items.php 中的PDO问题</h2>";

// 读取items.php文件
$file_path = __DIR__ . '/items.php';
$backup_file = $file_path . '.bak-' . date('YmdHis');

if (!file_exists($file_path)) {
    echo "<div style='background-color: #ffebee; padding: 10px; border-radius: 5px; margin-bottom: 10px;'>无法找到items.php文件</div>";
} else {
    // 备份原始文件
    if (copy($file_path, $backup_file)) {
        echo "<div style='background-color: #e8f5e9; padding: 10px; border-radius: 5px; margin-bottom: 10px;'>已备份原始文件到 " . basename($backup_file) . "</div>";
    } else {
        echo "<div style='background-color: #ffebee; padding: 10px; border-radius: 5px; margin-bottom: 10px;'>无法备份原始文件</div>";
    }
    
    $content = file_get_contents($file_path);
    
    // 修复问题1: 重复的execute()调用
    $content = preg_replace('/(\$stmt->execute\(\[[^\]]*\]\);)\s+\$stmt->execute\(\);/', '$1', $content);
    
    // 修复问题2: 使用num_rows（mysqli属性）替换为rowCount()（PDO方法）
    $content = str_replace('$stmt->num_rows', '$stmt->rowCount()', $content);
    $content = str_replace('$result->num_rows', '$stmt->rowCount()', $content);
    
    // 修复问题3: 从$result获取结果替换为从$stmt获取
    $content = str_replace('$result->fetch(PDO::FETCH_ASSOC)', '$stmt->fetch(PDO::FETCH_ASSOC)', $content);
    $content = str_replace('while ($row = $result->fetch(PDO::FETCH_ASSOC))', 'while ($row = $stmt->fetch(PDO::FETCH_ASSOC))', $content);
    
    // 修复问题4: 去掉"PDO直接使用$stmt，无需get_result"注释
    $content = str_replace('// PDO直接使用$stmt，无需get_result', '', $content);
    
    // 保存修改后的文件
    if (file_put_contents($file_path, $content)) {
        echo "<div style='background-color: #e8f5e9; padding: 10px; border-radius: 5px; margin-bottom: 10px;'>已成功修复items.php中的PDO问题</div>";
    } else {
        echo "<div style='background-color: #ffebee; padding: 10px; border-radius: 5px; margin-bottom: 10px;'>保存修改后的文件失败</div>";
    }
}

echo "<div style='margin-top: 20px;'>";
echo "<a href='items.php' style='display: inline-block; padding: 10px 15px; background-color: #2196f3; color: white; text-decoration: none; border-radius: 4px; margin-right: 10px;'>查看模块内容管理</a>";
echo "<a href='dashboard_fix_guide.php' style='display: inline-block; padding: 10px 15px; background-color: #4caf50; color: white; text-decoration: none; border-radius: 4px;'>返回修复指南</a>";
echo "</div>";

echo "</div>";
?> 